package cz.muni.fi.pa165.hauntedhouses.dto;

import cz.muni.fi.pa165.hauntedhouses.entity.AbilityType;
import java.io.Serializable;
import java.util.Objects;

/**A DTO representation of Ability entity
 *
 * @author Q.90 Siliarus
 */

public class AbilityDTO implements Serializable{
        
    private Long id;
    private String name;
    private String description;    
    private Integer damage;
    private Integer abilityLevel;
    private AbilityType abilityType;
    
    public AbilityType getAbilityType() {
        return abilityType;
    }

    public void setAbilityType(AbilityType abilityType) {
        this.abilityType = abilityType;
    }  

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getDamage() {
        return damage;
    }

    public void setDamage(Integer damage) {
        this.damage = damage;
    }

    public Integer getAbilityLevel() {
        return abilityLevel;
    }

    public void setAbilityLevel(Integer abilityLevel) {
        this.abilityLevel = abilityLevel;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 31 * hash + Objects.hashCode(this.id);
        hash = 31 * hash + Objects.hashCode(this.name);
        hash = 31 * hash + Objects.hashCode(this.description);
        hash = 31 * hash + Objects.hashCode(this.damage);
        hash = 31 * hash + Objects.hashCode(this.abilityLevel);
        hash = 31 * hash + (this.abilityType != null ? this.abilityType.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final AbilityDTO other = (AbilityDTO) obj;
        if (!Objects.equals(this.id, other.id)) {
            return false;
        }
        if (!Objects.equals(this.name, other.name)) {
            return false;
        }
        if (!Objects.equals(this.description, other.description)) {
            return false;
        }
        if (!Objects.equals(this.damage, other.damage)) {
            return false;
        }
        if (!Objects.equals(this.abilityLevel, other.abilityLevel)) {
            return false;
        }
        if (this.abilityType != other.abilityType) {
            return false;
        }
        return true;
    }
        
    
}
    